科技新知

單機模式 IP設定

平常我們自己做測試,網絡功能通常用預設的就好。但當我們的Docker Container需要存取在區域網內的其他資源,避晚IP網段相衝是必需要的事。

大部份情況下,單機Docker使用的預設IP段會是

  • 172.17.0.0/16
  • 172.18.0.0/16
  • ...

若然現在區域網中,有一段172.18.0.0/24,大家不想Docker踩到其中,可以修改設定檔,加入預設的default-address-pools,以後它就只會從指定的區段使用。

# vim /etc/docker/daemon.json
{
  "default-address-pools": [
    {
      "base": "172.17.0.0/16",
      "size": 24
    },
    {
      "base": "172.19.0.0/16",
      "size": 24
    },
    {
      "base": "172.20.0.0/16",
      "size": 24
    }
  ]
}
 

其中base,是docker可以操作的總區域,size指的是Docker要自行分段的話,每段的大小是多少,上述的例子,就代表未來可能有以下Docker 網段。

  • 172.17.0.0/24
  • 172.17.1.0/24
  • ...
  • 172.17.255.0/24
  • 172.19.0.0/24
  • 172.19.1.0/24
  • ...
  • 172.19.255.0/24
  • 172.20.0.0/24
  • 172.20.1.0/24
  • ...
  • 172.20.255.0/24

修改完設定後,重啟Docker就會生效。當然,重啟前,先刪除所有不在預設範圍的所有Container。

Swarm模式 IP設定

Swarm模式,與單機差不多,它需要在初始化Swarm就要定義,而且它不能與單機的網段有重疊。單機會預設使用Private IPv4 Class B,Swarm則是預設使用Private IPv4 Class A段,所以我們若就更改,就使用10.x.x.x吧。

docker swarm init --default-addr-pool 10.1.0.0/16 --default-addr-pool-mask-length 24
 

經上述例子初始化的 ingress 網段,將會是 10.1.0.0/24,隨後每個stack 則會是

  • 10.1.1.0/24
  • 10.1.2.0/24
  • 10.1.3.0/24

重置Swarm

跟單機的情況類似,如果已建立Swarm後才修改網段,還是要整個刪掉重來。

每個節點都要執行以下指令。

docker swarm leave --force
 

實測swarm leave這個指令也會把所有運行中的stack刪掉。

各節點重新建立swarm

# in node 1, init new swarm with new ip
docker swarm init --default-addr-pool 10.1.0.0/16 --default-addr-pool-mask-length 24
# in node 1, get new manager token
docker swarm join-token manager
# in node 2 and node 3, join node 1 with new token
docker swarm join --token XXXXX YOUR_NEW_NODE1_IP:2377
 

雙管齊下

如果大家同想要修定單機及Swarm的網段,還要留意有一個特別的網段docker_gwbridge。它雖然是Swarm的附帶產物,但它則是受單機的網段控制。也就是,如果大家有需要同時修改單機及Swarm的網段,則需要手動刪除Swarm及docker_gwbridge

在每個節點先刪掉舊有的Swarm及docker_gwbridge,並關掉docker

docker swarm leave --force
docker network rm docker_gwbridge
 

在每個節點為docker_gwbridge修改設定,然後重起docker

# vim /etc/docker/daemon.json
{
  "default-address-pools": [
    {
      "base": "172.17.0.0/16",
      "size": 24
    }
  ]
}
 

然後像前述一樣,重起Swarm。

馬交野


4DX  28年後
英語版  馴龍記
4DX    馴龍記
4DX  英語版  馴龍記
榴心風暴
IMAX with Laser 罪人們
野黨
器子
劇場版 我與機器子
大風殺
超異能特攻
英語版  史迪仔
私家偵探
IMAX with Laser 馴龍記 英語版
拼命三郎
殺神John Wick之芭蕾殺姬
不赦之罪
囍宴 2025 3rd MIQFF
殺死我阿媽 3rd MIQFF
焦點藝術家:黃天寶 短片集 3rd MIQFF
史迪仔 英語版
殺神JOHN WICK外傳:芭蕾殺姬
罪人們
28 年後
獵狐行動
關於我和鬼變成家人的那封利是
職業特工隊:最終清算
馴龍記
28年後
史迪仔
死神來了:血脈
獵金•遊戲
4DX  28年後